﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<ctype.h>
#include<assert.h>


//int main()
//{
//	unsigned int i;
//	for (i = 9; i >= 0; i--)
//	{
//		printf("%u\n", i);
//	}
//	return 0;
//}


//int main()
//{
//	int a[4] = { 1, 2, 3, 4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%x,%x", ptr1[-1], *ptr2);//4 2000000
//	return 0;
//}


//unsigned char i = 0;
//int main()
//{
//	for (i = 0; i <= 255; i++)
//	{
//		printf("hello world\n");
//	}
//	return 0;
//}


//int main()
//{
//	int n = 9;
//	float* pFloat = (float*)&n;
//	printf("n的值为：%d\n", n);//9
//	printf("*pFloat的值为：%f\n", *pFloat);//0.000000
//	*pFloat = 9.0;
//	printf("num的值为：%d\n", n);//1091567616
//	printf("*pFloat的值为：%f\n", *pFloat);//9.000000
//	return 0;
//}


//struct book
//{
//	char name[20];
//	char author[20];
//	float price;
//	char id[13];
//};
//int main()
//{
//	struct book  b1= {"C语言","鹏哥",18.8,"PG1001"};
//	struct book  b2 = { .id ="PG1001",.author="鹏哥",.name="C语言",.price=18.8};
//	return 0;
//}


//匿名结构体类型 
//struct
//{
//	int a;
//	char b;
//	float c;
//}x;
//struct
//{
//	int a;
//	char b;
//	float c;
//}a[20], * p;


//编译器会把上⾯的两个声明当成完全不同的两个类型，所以是⾮法的。
//匿名的结构体类型，如果没有对结构体类型重命名的话，基本上只能使⽤⼀次。

//结构体自引用   链表
//struct node
//{
//	int data;//数据
//	struct node* next;//指针
//};
//
//int main()
//{
//
//	return 0;
//}



//typedef struct node
//{
//	int data;//数据
//	struct node* next;//指针
//}node;
//
//int main()
//{
//	struct node n1;
//	node n2;
//	return 0;
//}

//匿名的结构体不能使用结构体的自引用

//struct node
//{
//	int data;//数据
//	struct node* next;//指针
//};
//typedef struct node node;
//int main()
//{
//	struct node n1;
//	node n2;
//	return 0;
//}














































